package j_Polymorphism;

/**
 * 测试多态性的类。
 * @author Cheng-02
 * @version V1.0
 * @Package j_Polymorphism
 * @date 2024/3/31 下午1:57
 */
public class Test01 {
    public static void main(String[] args) {
        Dog dog = new Dog(); // 创建Dog实例
        method(dog); // 调用method方法，传入Dog实例
        System.out.println("--------------------------");
        Cat cat = new Cat(); // 创建Cat实例
        method(cat); // 调用method方法，传入Cat实例

    }
    /**
     * 对动物实例进行操作的方法。
     * @param a 动物类型参数，可以是Dog或Cat的实例。
     */
    public static void method(Animal a)
    {
        a.eat(); // 执行动物的吃食行为

        // 判断a实例的具体类型并执行相应的动作
        if (a instanceof Dog)
        {
            Dog dog = (Dog) a; // 将a转为Dog类型，执行看家行为
            dog.lookHome();
        }
        if (a instanceof Cat) {
            Cat cat = (Cat) a; // 将a转为Cat类型，执行捉老鼠行为
            cat.catchMouse();

        }
    }
}
